--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Commit 621d496da13a8d10310821579dc779531359ad1b
Parents : 5564cc2
Author : Mark Qvist <bc7291552be7a58f361522990465165c>
Signature : T66BB85Valid, signed by author
Date : 2026-07-06T19:20:43+02:00
Attempt recovery when hardware changes channel map mid-stream
Changes
Diff
diff --git a/LXST/Sinks.py b/LXST/Sinks.py
index fa33160..21fca3c 100644
--- a/LXST/Sinks.py
+++ b/LXST/Sinks.py
@@ -201,6 +201,10 @@ class LineSink(LocalSink):
self.underrun_at = None
with self.insert_lock: frame = self.frame_deque.popleft()
+ if self.channels != self.backend.device.channels:
+ RNS.log(f"Underlying device for {self} re-configured channel map mid-stream (from {self.channels} to {self.backend.device.channels})", RNS.LOG_WARNING)
+ self.channels = self.backend.device.channels
+
if frame.shape[1] > self.channels: frame = frame[:, 0:self.channels]
player.play(frame)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────